<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>js基本语法</title>
		<script type="text/javascript">
			/*
			 * js函数的定义：
			 * 1、一般的函数定义方式
			 * 语法：
			 *    function 函数名(参数列表){
			 * 	     函数体；
			 *   （return语句）
			 * }
			 * 解析：
			 *    函数的参数列表不需要使用var，直接写形参名即可；
			 *    function是关键字，表示这是一个函数定义；
			 *    没有返回值类型，因为js是弱类型的语言；
			 *    参数列表和java一样；
			 *    如果函数需要提供返回值，则直接使用return 返回值表达式; 语句返回即可；也可以使用return关键字进行返回，表示直接返回上层调用者；(同java)
			 *    函数的命名规范参考java的命名规范即可；
			 * 
			 * 2、变量定义方式 （以对象的方式定义函数）
			 *  语法：
			 *     var 函数名  = new Function(参数列表,函数体  );
			 *  解析：
			 *     参数名使用引号将其引出；
			 *     函数体部分使用引号将其引出；
			 *     参数列表和函数体都是字符串；
			 *     这种定义是创建了一个函数对象，（）中的参数列表字符串还是有用函数体的字符串相当于创建Function对象的参数；
			 *  
			 * 上面两种定义方式的函数在调用时是一样；
			 * 
			 * 在js中，函数调用之间也是有两种传参形式：
			 *      按值传参和按引用传参；
			 *      基本类型按值传参；
			 *      对象类型和数组按引用传参；
			 * 
			 * arguments对象的使用：
			 *    arguments是实参的参数数组；
			 *    arguments.length 是实参的个数；
			 *    函数名.length是形参的个数；
			 * 函数的调用方式：
			 * 1、函数之间的普通调用
			 * 2、超链接中调用js函数。
			 * 3、标签控件的事件调用
			 * 
			 * windows对象的prompt函数的应用：用于从浏览器端输入内容；类似于java的scanner对象；
			 * 语法：
			 *    window.prompt("","");
			 * 解析：
			 *    第一个参数是提示信息；
			 *    第二个参数是默认值；
			*/
			
			// 定义一个全局变量
			var str = "小明";
			// 创建了一个函数对象
			var sayHello = new Function("str","str = \"Hello,\"+str;alert(str);");
			 
			
			var arr = [1,2,3];
			alert(arr);
			console.info("函数调用之前arr：");
			console.info(arr);
			
			function test01(obj){
				obj[0]+=2;
			}
			
			// 调用子函数
			test01(arr);
			alert(arr);
			console.info("函数调用之后arr：");
			console.info(arr);
			
			alert("子方法调用之前："+str);
			
			//函数定义
			function test02(str){ //形参
				str+="0000";
				// 子函数内部
				alert("子函数内部："+str);
			}
			// 函数调用
			test02(str); // 实参
			alert("子方法调用之后："+str);
			
			var val = window.prompt("请输入一个数字：",10);
			if(isNaN(val)){
				document.write("你刚才输入的内容是：不是数字<br>");
			}else{
				document.write("你刚才输入的内容是："+ val+"<br>");
			}
		</script>
	</head>

	<body>
	<a href="javascript:test02('小明22')">js函数超链接调用</a>
	<input type="button" value="js函数事件调用" onclick="test02(&quot;小明33&quot;);" />
	</body>

</html>